		TITLE	ALLOPOOL - Copyright (c) SLR Systems 1994

		INCLUDE MACROS

		PUBLIC	SSYM_POOL_GET,TEXT_POOL_GET,P1ONLY_POOL_GET,TILLP2_POOL_GET,TILLMIDDLE_POOL_GET,SECTION_POOL_GET
		PUBLIC	SEGMENT_POOL_GET,SEGMOD_POOL_GET,CLASS_POOL_GET,GROUP_POOL_GET,MODULE_POOL_GET,ALLOC_LOCAL,RELOC_POOL_GET
		PUBLIC	XREF_POOL_GET,UNMANGLE_POOL_GET
if	fg_segm
		PUBLIC	ENTRYNAME_POOL_GET,IMPNAME_POOL_GET,ENTRY_POOL_GET,RESTYPE_POOL_GET,RESOURCE_POOL_GET,RESNAME_POOL_GET
		PUBLIC	PENT_POOL_GET,IMPMOD_POOL_GET,RES_TYPENAME_POOL_GET,RTNL_POOL_GET
endif
if	fg_td
		PUBLIC	TD_NAME_POOL_GET,TD_GLOCAL_POOL_GET,TD_GTYPE_POOL_GET,TD_GSMEM_POOL_GET,TD_GCLASS_POOL_GET
endif
if	fg_pe
		PUBLIC	PAGE_RELOC_POOL_GET
endif
if	fg_cvpack
		PUBLIC	CV_GSYM_POOL_GET,CV_LTYPE_POOL_GET,CV_GTYPE_POOL_GET,CV_SSYM_POOL_GET,CV_HASHES_POOL_GET
endif

		.DATA

		EXTERNDEF	SSYM_STUFF:ALLOCS_STRUCT,TEXT_STUFF:ALLOCS_STRUCT,P1ONLY_STUFF:ALLOCS_STRUCT
		EXTERNDEF	TILLMIDDLE_STUFF:ALLOCS_STRUCT,SEGMENT_STUFF:ALLOCS_STRUCT,LNAME_STUFF:ALLOCS_STRUCT
		EXTERNDEF	TD_NAME_STUFF:ALLOCS_STRUCT,TD_GLOCAL_STUFF:ALLOCS_STRUCT,ENTRYNAME_STUFF:ALLOCS_STRUCT
		EXTERNDEF	IMPNAME_STUFF:ALLOCS_STRUCT,ENTRY_STUFF:ALLOCS_STRUCT,RESOURCE_TYPE_STUFF:ALLOCS_STRUCT
		EXTERNDEF	RESOURCE_STUFF:ALLOCS_STRUCT,RESOURCE_NAME_STUFF:ALLOCS_STRUCT,PENT_STUFF:ALLOCS_STRUCT
		EXTERNDEF	RELOC_STUFF:ALLOCS_STRUCT,TD_GTYPE_STUFF:ALLOCS_STRUCT,TD_GSMEM_STUFF:ALLOCS_STRUCT
		EXTERNDEF	TD_GCLASS_STUFF:ALLOCS_STRUCT,PAGE_RELOC_STUFF:ALLOCS_STRUCT,CV_GSYM_STUFF:ALLOCS_STRUCT
		EXTERNDEF	CV_LTYPE_STUFF:ALLOCS_STRUCT,CV_GTYPE_STUFF:ALLOCS_STRUCT,CV_SSYM_STUFF:ALLOCS_STRUCT
		EXTERNDEF	CV_HASHES_STUFF:ALLOCS_STRUCT,XREF_STUFF:ALLOCS_STRUCT,UNMANGLE_STUFF:ALLOCS_STRUCT

if	fg_cvpack

		EXTERNDEF       CV_LTYPE_OVERSIZE_CNT:DWORD
		EXTERNDEF	CV_LTYPE_SPECIAL_BLOCK:DWORD
		EXTERNDEF       CV_GTYPE_OVERSIZE_CNT:DWORD
		EXTERNDEF	CV_GTYPE_SPECIAL_BLOCK:DWORD

endif
		.CODE	ROOT_TEXT

		externdef	_allo_pool_get1:proc
		externdef	_ap_fix:proc
		externdef	_get_new_phys_blk:proc
		externdef	_cv_ltype_pool_get:proc
		externdef	_cv_gtype_pool_get:proc

if	fg_cvpack
		EXTERNDEF	_get_large_segment:proc
endif

UNMANGLE_POOL_GET	PROC
	push	ECX
	push	EDX

	push	OFF UNMANGLE_STUFF
	push	EAX
	call	_allo_pool_get1
	add	ESP,8

	pop	EDX
	pop	ECX
	ret
UNMANGLE_POOL_GET	ENDP


if	fg_cvpack

CV_GSYM_POOL_GET	PROC
	push	ECX
	push	EDX

	push	OFF CV_GSYM_STUFF
	push	EAX
	call	_allo_pool_get1
	add	ESP,8

	pop	EDX
	pop	ECX
	ret
CV_GSYM_POOL_GET	ENDP


CV_SSYM_POOL_GET	PROC
	push	ECX
	push	EDX

	push	OFF CV_SSYM_STUFF
	push	EAX
	call	_allo_pool_get1
	add	ESP,8

	pop	EDX
	pop	ECX
	ret
CV_SSYM_POOL_GET	ENDP


CV_LTYPE_POOL_GET	PROC
	push	ECX
	push	EDX
	push	EAX
	call	_cv_ltype_pool_get
	add	ESP,4
	pop	EDX
	pop	ECX
	ret
CV_LTYPE_POOL_GET	ENDP



CV_GTYPE_POOL_GET	PROC
	push	ECX
	push	EDX
	push	EAX
	call	_cv_gtype_pool_get
	add	ESP,4
	pop	EDX
	pop	ECX
	ret
CV_GTYPE_POOL_GET	ENDP


CV_HASHES_POOL_GET	PROC
	push	ECX
	push	EDX

	push	OFF CV_HASHES_STUFF
	push	EAX
	call	_allo_pool_get1
	add	ESP,8

	pop	EDX
	pop	ECX
	ret
CV_HASHES_POOL_GET	ENDP

endif

if	fg_pe

PAGE_RELOC_POOL_GET	PROC
	push	ECX
	push	EDX

	push	OFF PAGE_RELOC_STUFF
	push	EAX
	call	_allo_pool_get1
	add	ESP,8

	pop	EDX
	pop	ECX
	ret
PAGE_RELOC_POOL_GET	ENDP

endif


if	fg_td

TD_GCLASS_POOL_GET	PROC
	push	ECX
	push	EDX

	push	OFF TD_GCLASS_STUFF
	push	EAX
	call	_allo_pool_get1
	add	ESP,8

	pop	EDX
	pop	ECX
	ret
TD_GCLASS_POOL_GET	ENDP


TD_GSMEM_POOL_GET	PROC
	push	ECX
	push	EDX

	push	OFF TD_GSMEM_STUFF
	push	EAX
	call	_allo_pool_get1
	add	ESP,8

	pop	EDX
	pop	ECX
	ret
TD_GSMEM_POOL_GET	ENDP


TD_GLOCAL_POOL_GET	PROC
	push	ECX
	push	EDX

	push	OFF TD_GLOCAL_STUFF
	push	EAX
	call	_allo_pool_get1
	add	ESP,8

	pop	EDX
	pop	ECX
	ret
TD_GLOCAL_POOL_GET	ENDP


TD_GTYPE_POOL_GET	PROC
	push	ECX
	push	EDX

	push	OFF TD_GTYPE_STUFF
	push	EAX
	call	_allo_pool_get1
	add	ESP,8

	pop	EDX
	pop	ECX
	ret
TD_GTYPE_POOL_GET	ENDP


TD_NAME_POOL_GET	PROC
	push	ECX
	push	EDX

	push	OFF TD_NAME_STUFF
	push	EAX
	call	_allo_pool_get1
	add	ESP,8

	pop	EDX
	pop	ECX
	ret
TD_NAME_POOL_GET	ENDP

endif


if	fg_segm


PENT_POOL_GET	PROC
	push	ECX
	push	EDX

	push	OFF PENT_STUFF
	push	EAX
	call	_allo_pool_get1
	add	ESP,8

	pop	EDX
	pop	ECX
	ret
PENT_POOL_GET	ENDP


RESOURCE_POOL_GET	PROC
	push	ECX
	push	EDX

	push	OFF RESOURCE_STUFF
	push	EAX
	call	_allo_pool_get1
	add	ESP,8

	pop	EDX
	pop	ECX
	ret
RESOURCE_POOL_GET	ENDP


RESTYPE_POOL_GET	EQU	RESOURCE_POOL_GET
RESNAME_POOL_GET	EQU	RESOURCE_POOL_GET
RES_TYPENAME_POOL_GET	EQU	RESOURCE_POOL_GET
RTNL_POOL_GET		EQU	RESOURCE_POOL_GET


ENTRY_POOL_GET	PROC
	push	ECX
	push	EDX

	push	OFF ENTRY_STUFF
	push	EAX
	call	_allo_pool_get1
	add	ESP,8

	pop	EDX
	pop	ECX
	ret
ENTRY_POOL_GET	ENDP


ENTRYNAME_POOL_GET	PROC
	push	ECX
	push	EDX

	push	OFF ENTRYNAME_STUFF
	push	EAX
	call	_allo_pool_get1
	add	ESP,8

	pop	EDX
	pop	ECX
	ret
ENTRYNAME_POOL_GET	ENDP


IMPNAME_POOL_GET	PROC
	push	ECX
	push	EDX

	push	OFF IMPNAME_STUFF
	push	EAX
	call	_allo_pool_get1
	add	ESP,8

	pop	EDX
	pop	ECX
	ret
IMPNAME_POOL_GET	ENDP

endif


RELOC_POOL_GET	PROC
		;
		;USED BY:	INSTRELO
		;		INSTNMSP
		;
	push	ECX
	push	EDX

	push	OFF RELOC_STUFF
	push	EAX
	call	_allo_pool_get1
	add	ESP,8

	pop	EDX
	pop	ECX
	ret
RELOC_POOL_GET	ENDP


XREF_POOL_GET	PROC

	push	ECX
	push	EDX

	push	OFF XREF_STUFF
	push	EAX
	call	_allo_pool_get1
	add	ESP,8

	pop	EDX
	pop	ECX
	ret
XREF_POOL_GET	ENDP


SSYM_POOL_GET	PROC
	push	ECX
	push	EDX

	push	OFF SSYM_STUFF
	push	EAX
	call	_allo_pool_get1
	add	ESP,8

	pop	EDX
	pop	ECX
	ret
		;
		;USED BY:	RESOURCE	;PTRS DESCRIBING .RES FILE BLOCKS
		;		COMDEF		;HUGE PTR ALLOCATION
		;		FARINST		;NORMAL GLOBAL SYMBOLS
		;
SSYM_POOL_GET	ENDP


P1ONLY_POOL_GET	PROC
	push	ECX
	push	EDX

	push	OFF P1ONLY_STUFF
	push	EAX
	call	_allo_pool_get1
	add	ESP,8

	pop	EDX
	pop	ECX
	ret
		;
		;USED BY:	COMDAT-ORDERING
		;		COMDAT-SOFT-REFERENCE STUFF
		;		SOME LIBRARY STUFF
		;
P1ONLY_POOL_GET	ENDP


	public	_tillmiddle_pool_get
_tillmiddle_pool_get	proc
	mov	EAX,4[ESP]
_tillmiddle_pool_get	endp

TILLMIDDLE_POOL_GET	PROC
	push	ECX
	push	EDX

	push	OFF TILLMIDDLE_STUFF
	push	EAX
	call	_allo_pool_get1
	add	ESP,8

	pop	EDX
	pop	ECX
	ret
		;
		;USED BY:	LOCAL SYMBOLS
		;		MODULE_STRUCT IF NOT HASHING
		;
TILLMIDDLE_POOL_GET	ENDP


TILLP2_POOL_GET	EQU	TILLMIDDLE_POOL_GET
		;
		;USED BY:	MODULE NAME, DESCRIPTION
		;		START-ADDRESS FIXUPP
		;		CSEG_STRUCTS
		;		OUTFILE_STRUCTS
		;		SRC_STRUCTS
		;
;		LEA	DI,TILLP2_STUFF
;		JMP	ALLO_POOL_GET

;TILLP2_POOL_GET	ENDP


ALLOC_LOCAL	PROC
	push	ECX
	push	EDX

	push	OFF LNAME_STUFF
	push	EAX
	call	_allo_pool_get1
	add	ESP,8

	pop	EDX
	pop	ECX
	ret
ALLOC_LOCAL	ENDP


SEGMENT_POOL_GET	PROC
	push	ECX
	push	EDX

	push	OFF SEGMENT_STUFF
	push	EAX
	call	_allo_pool_get1
	add	ESP,8

	pop	EDX
	pop	ECX
	ret
SEGMENT_POOL_GET	ENDP

SEGMOD_POOL_GET	EQU	SEGMENT_POOL_GET
CLASS_POOL_GET	EQU	SEGMENT_POOL_GET
GROUP_POOL_GET	EQU	SEGMENT_POOL_GET
MODULE_POOL_GET	EQU	SEGMENT_POOL_GET	;FOR SEARCHING FOR SPECIFIC MODULE NAMES
SECTION_POOL_GET	EQU	SEGMENT_POOL_GET

if	fg_segm

IMPMOD_POOL_GET	EQU	SEGMOD_POOL_GET


endif

TEXT_POOL_GET	EQU	SEGMENT_POOL_GET
		;
		;USED  BY:	FILE_LIST KINDS OF STUFF
		;		LIBRARY_STRUCTS
		;

		END

